
package com.jf.cloud.product.service;

import com.jf.cloud.common.database.dto.PageDTO;
import com.jf.cloud.common.database.vo.PageVO;
import com.jf.cloud.product.model.SpuExtension;
import com.jf.cloud.product.vo.SpuExtensionVO;

/**
 *
 *
 * @author zz
 * @date 2020-11-11 13:49:06
 */
public interface SpuExtensionService {

    /**
     * 分页获取列表
     * @param pageDTO 分页参数
     * @return 列表分页数据
     */
    PageVO<SpuExtensionVO> page(PageDTO pageDTO);

    /**
     * 根据id获取
     *
     * @param spuExtendId id
     * @return
     */
    SpuExtensionVO getBySpuExtendId(Long spuExtendId);

    /**
     * 保存
     * @param spuExtension 商品扩展信息
     */
    void save(SpuExtension spuExtension);

    /**
     * 更新库存
     * @param spuId 商品id
     */
    int updateStock(Long spuId);

    /**
     * 根据id删除
     * @param spuId
     */
    void deleteById(Long spuId);

    /**
     * 获取spu扩展信息
     * @param spuId
     * @return
     */
    SpuExtension getBySpuId(Long spuId);

    /**
     * 更新商品扩展信息
     * @param spuExtension
     */
    void update(SpuExtension spuExtension);

    /**
     * 根据商品id更新商品注水销量
     * @param spuId
     * @param waterSoldNum
     */
    void updateWaterSoldNumBySpuId(Long spuId, Integer waterSoldNum);

    /**
     * 根据商品id修改商品评价数量
     * @param spuId
     * @param changeCount
     */
    void changeCommentNum(Long spuId, Integer changeCount);

    /**
     * 根据秒杀订单支付成功，更新商品销量
     * @param spuId
     * @param prodCount
     * @return
     */
    void updateSaleNumBySeckillOrder(Long spuId, Integer prodCount);
}
